PROGRAM rechercheClient;

USES
	Clients, Types;

Function rechercheClient(collectionClient : TTabClient ) : INTEGER;											//Définition du nom de notre fonction ainsi que ses paramètres en entrée-sortie
	Var
		nom : STRING;
		localite : STRING;
		ID_Clientprovi: INTEGER;
		coltabtemp1 : TTabClient;
		coltabtemp2 : TTabClient;
		i : INTEGER;
	
BEGIN
	nom := '';
	localite := '';
	coltabtemp1.nbelement := 0;
	coltabtemp2.nbelement := 0;
	WRITELN('Laisser vide les champs non renseignes');														//Entrez du nom et la ville d'un client pour initier la recherche
	WRITELN('Nom:');
	READLN(nom);
	WRITELN('localite:');
	READLN(localite);
	i := 1;
	IF(nom <> '') THEN
		begin
			WHILE(i <= collectionClient.nbelement) DO														//Recherche dans le tableau des nom correspondant à la recherche
				begin
					IF(collectionClient.tabclient[i].nom = nom) THEN
						begin
							coltabtemp1.nbelement := coltabtemp1.nbelement + 1;
							coltabtemp1.tabclient[coltabtemp1.nbelement] := collectionClient.tabclient[i]; 	//Copie toute l'information du client
						end;
					i := i+ 1;
				end;
		end
	ELSE
		coltabtemp1 := collectionClient; 																	//Faut remplir le tableau temp avec la collection client;	
	i:=1;
	IF(localite <> '') THEN
		begin
			WHILE(i <= coltabtemp1.nbelement) DO
				begin
					IF(coltabtemp1.tabclient[i].localite = localite) THEN									//Recherche dans le tableau des villes correspondante à la recherche
						begin
							coltabtemp2.nbelement := coltabtemp2.nbelement + 1;
							coltabtemp2.tabclient[coltabtemp2.nbelement] := coltabtemp1.tabclient[i];
						end;		
				end;
			i := i+ 1;
		end
	ELSE
			coltabtemp2 := coltabtemp1;																		//METTRE TRUCK POUR SORTIR SI ON A RIEN RENTRE	
	listing(coltabtemp2);  																					//Permet d'afficher tous les clients
	WRITELN('Entrer ID_Client:');																			//Entrez de l'ID_Client qui sera retourné
	READLN(ID_Clientprovi);
	rechercheClient := ID_Clientprovi;
END;

Var
	client : TTabClient;
	compte : TTabCompte;
	
BEGIN
	client.tabclient[1].ID:= 123;
	client.tabclient[1].nom:= 'Petit';
	client.tabclient[1].prenom:= 'Benoit';
	client.tabclient[1].naissance:= '15.05.1991'; 
	client.tabclient[1].politesse:= 'Monsieur';
	client.tabclient[1].adresse:= 'Chemin du Secheron 5';
	client.tabclient[1].npa:= '1132';
	client.tabclient[1].localite:= 'Lully';
	client.tabclient[1].telephone:= '0796208831';

	client.tabclient[2].ID:= 789;
	client.tabclient[2].nom:= 'Plug';
	client.tabclient[2].prenom:= 'Johann';
	client.tabclient[2].naissance:= '12.05.1992';
	client.tabclient[2].politesse:= 'Monsieur';
	client.tabclient[2].adresse:= 'Rte de l''Eglise 2';
	client.tabclient[2].npa:= '1064';
	client.tabclient[2].localite:= 'Etoy';
	client.tabclient[2].telephone:= '0794997979';
	
	client.nbelement:=2;
	
	compte.compteclient[1].IDcompte := 456;
	compte.compteclient[1].IDclient := 123;
	compte.compteclient[1].Libelle := 'Epargne';
	compte.compteclient[1].taux := '2.5%';
	compte.compteclient[1].solde := 1000;
	compte.compteclient[1].limite := 1;

	compte.compteclient[2].IDcompte := 123;
	compte.compteclient[2].IDclient := 789;
	compte.compteclient[2].Libelle := 'courant';
	compte.compteclient[2].taux :=  '0.25';
	compte.compteclient[2].solde := 500;
	compte.compteclient[2].limite := -10;

	compte.nbcompte := 2;
	
	WRITE(rechercheClient(client));
END.

